/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.epsi.blokus.TWL_Slick_Binding;

import java.net.URL;
import org.epsi.blokus.state.*;
import org.epsi.blokus.tools.*;
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.util.ResourceLoader;

/**
 *
 * @author julien.lafont
 */
public class SlickTwlGame  extends TWLStateBasedGame implements IConstantes  {

    protected JeuState _jeuState;
    
   /**
    * Initialisation du moteur 2D
    */
   protected void SlickInitialisation() {

        // Initialisation du container de jeu
        try {
           
            AppGameContainer container = new AppGameContainer(this, FENETRE_WIDTH, FENETRE_HEIGHT, FENETRE_PLEINECRAN);
            container.setIcon(FENETRE_ICON);
            container.setTargetFrameRate(FENETRE_FPS_TARGET);
            container.setVerbose(true);

            container.setShowFPS(false);
            container.start();

        } catch (Exception e) {
            System.err.println(e);
            System.exit(-1);
        }

   }


    /**
    * Liste des states pour SLICK
    */
    public void initStatesList(GameContainer container) throws SlickException {
        addState(new InitState());
        addState(new AttenteState());
        addState(new JeuState());
    }


    /**
     * URL du thème principal pour la librairie graphique TWL
     * @return URL du thème
     */
   @Override
    protected URL getThemeURL() {
        return ResourceLoader.getResource(THEME_CHEMIN);
    }



   /**
    * Titre de la fenêtre
    */
    public SlickTwlGame() {
        super(I18n.get("hex_title"));
    }

}
